// 目的: 我们需要一种方法使返回值的类型与传入参数的类型是相同的。 这里，我们使用了 类型变量，它是一种特殊的变量，只用于表示类型而不是值
// function identity(arg: number): number {
//   return arg;
// }
/**
 * H(这相当于一个占位符,字母可以是任意,建议"T"(官方)),通过占位符来让调用时赋值类型
 */
function identity_1<H>(params: H): string {
  return `${params}`
}
function identity_2<H>(params: H): H {
  return params
}
let output = identity_1<string>("1") // typeof string
let output2 = identity_1<number>(1)  // typeof number
console.log(output2);
